// #include <stdio.h>
// #include <stdlib.h>
// #include <stdbool.h>
// #include <string.h>
// #include <assert.h>
//
// enum Operator
// {
//     Quit,
//     Insert,
//     Show,
//     Search,
//     Modify,
//     Delete,
//     Sort,
// };
// typedef  struct Person
// {
//     int no;
//     char name[20];
//     int age;
// }Person;
//
// typedef struct SystemInfo
// {
//     Person* arr;
//     int curSize;
//     int maxSize;
// }SystemInfo;
//
// void print_menu()
// {
//     printf("----------------------\n");
//     printf("\t0.退出系统\n");
//     printf("\t1.录入系统\n");
//     printf("\t2.显示信息\n");
//     printf("\t3.查找信息\n");
//     printf("\t4.修改信息\n");
//     printf("\t5.删除信息\n");
//     printf("\t6.排序信息\n");
//     printf("----------------------\n");
// }
//
// SystemInfo* create_system(int maxSize)
// {
//     SystemInfo* s = (SystemInfo*)malloc(sizeof(SystemInfo));
//     assert(s);
//     s->curSize=0;
//     s->maxSize=maxSize;
//     s->arr=(Person*)malloc(sizeof(Person) * maxSize);
//     return s;
// }
//
//
//
// void insert_system(SystemInfo* s,Person data)
// {
//     //自动增长问题
//     if (s->curSize == s->maxSize)
//     {
//         s->curSize *=2;
//         Person* temp = realloc(s->arr,sizeof(Person) * s->curSize);
//         s->arr = temp;
//     }
//     s->arr[s->curSize++] = data;
// }
//
//
// void save_file(SystemInfo* s)
// {
//     FILE* f = fopen("dd.txt","w");
//     assert(f);
//     for (int i=0;i<s->curSize;i++)
//     {
//         fprintf(f,"%d\t%s\t%d\n",s->arr[i].no,s->arr[i].name,s->arr[i].age);
//     }
//     fclose(f);
// }
//
// void load_file(SystemInfo* s)
// {
//     FILE* f = fopen("dd.txt","r");
//     if (f==NULL)
//     {
//         f = fopen("dd.txt","w");
//     }else
//     {
//         Person temp;
//         while (fscanf(f,"%d\t%s\t%d\n",&temp.no,temp.name,&temp.age)!=EOF)
//         {
//             insert_system(s,temp);
//         }
//     }
//     fclose(f);
// }
//
// void print_system(SystemInfo* s)
// {
//     printf("编号\t姓名\t年龄\t\n");
//     for (int i=0;i<s->curSize;i++)
//     {
//         printf("%d\t%s\t%d\n",s->arr[i].no,s->arr[i].name,s->arr[i].age);
//     }
// }
//
// void insert_data(SystemInfo* s)
// {
//     Person p;
//     printf("请输入信息\n");
//     scanf("%d%s%d",&p.no,p.name,&p.age);
//     insert_system(s,p);
// }
// bool compare_by_age(Person a,Person b)
// {
//     return a.age>b.age?true:false;
// }
//
// void sort_data(SystemInfo* s,bool(* fn)(Person,Person))
// {
//     for (int i=0;i<s->curSize-1;i++)
//     {
//         // printf("%d%s%d\n",s->arr[i].no,s->arr[i].name,s->arr[i].age);
//         // printf("%d%s%d\n",s->arr[i+1].no,s->arr[i+1].name,s->arr[i+1].age);
//         // printf("-----\n");
//         if (fn(s->arr[i],s->arr[i+1]))
//         {
//             // printf("3\n");
//             Person temp = s->arr[i];
//             s->arr[i]=s->arr[i+1];
//             s->arr[i+1] = temp;
//         }
//     }
// }
//
//
// void keydown_system(SystemInfo* s)
// {
//     printf("请输入你的选择\n");
//     int key = 0;
//     scanf("%d",&key);
//     switch (key)
//     {
//     case Quit:
//         save_file(s);
//         printf("退出成功\n");
//         exit(0);
//     case Insert:
//         insert_data(s);
//         break;
//     case Show:
//         print_system(s);
//         break;
//     case Search:
//         break;
//     case  Modify:
//         break;
//     case Delete:
//         break;
//     case Sort:
//         sort_data(s,compare_by_age);
//         print_system(s);
//         break;
//     }
// }
//
//
//
// int main()
// {
//     SystemInfo* s = create_system(100);
//     load_file(s);
//     while (true)
//     {
//         print_menu();
//         keydown_system(s);
//         //system("read");
//         system("clear");
//     }
//     return 0;
// }